package com.llc.mall.rbac.interfaces.vo;

import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;

public record MenuVo(
        @Schema(description = "菜单id")
        Long menuId,
        @Schema(description = "父菜单ID，一级菜单为0")
        Long parentId,
        @Schema(description = "权限，需要有哪个权限才能访问该菜单")
        String permission,
        @Schema(description = "路径 就像uri")
        String path,
        @Schema(description = "组件如：1.'Layout' 为布局，不会跳页面 2.'components-demo/tinymce' 跳转到该页面")
        String component,
        @Schema(description = "当设置 noRedirect 的时候该路由在面包屑导航中不可被点击")
        String redirect,
        @Schema(description = "一直显示根路由")
        Integer alwaysShow,
        @Schema(description = "当设置 true 的时候该路由不会在侧边栏出现 如401，login等页面，或者如一些编辑页面/edit/1")
        Integer hidden,
        @Schema(description = "设定路由的名字，一定要填写不然使用<keep-alive>时会出现各种问题")
        String name,
        @Schema(description = "设置该路由在侧边栏和面包屑中展示的名字")
        String title,
        @Schema(description = "设置该路由的图标，支持 svg-class，也支持 el-icon-x element-ui 的 icon")
        String icon,
        @Schema(description = "如果设置为true，则不会被 <keep-alive> 缓存(默认 false)")
        Integer noCache,
        @Schema(description = "如果设置为false，则不会在breadcrumb面包屑中显示(默认 true)")
        Integer breadcrumb,
        @Schema(description = "若果设置为true，它则会固定在tags-view中(默认 false)")
        Integer affix,
        @Schema(description = "当路由设置了该属性，则会高亮相对应的侧边栏。")
        String activeMenu,
        @Schema(description = "排序，越小越靠前")
        Integer seq
) implements Serializable {
}
